import { TimeRange } from "@/utils"

export interface IHandListParams {
	gameTypeId?: number
	handBeginTimeFrom?: string
	handBeginTimeTo?: string
	handCode?: string
	pageNum?: number
	pageSize?: number
	tableCode?: string
	userNames?: string
	dateTime?: TimeRange
}

export interface IHandListItemResponse {
	afterChip: number
	anteScore: number
	anteSwitch: number
	bbBlindScore: number
	bbSeat: number
	beforeChip: number
	bringMidwayChip: number
	clubId: number
	clubName: string
	createdAt: string
	createdBy: string
	deleteFlag: number
	evInsuredNetAmount: number
	gameName: string
	gameTypeId: number
	handBeginTime: string
	handCode: string
	handEndTime: string
	handId: string
	handNetAmount: number
	handNum: number
	handStatus: number
	insuredNetAmount: number
	netAmount: number
	orderNo: number | null
	publicCards: string
	pumpingAmount: number
	sbBlindScore: number
	sbSeat: number
	straddleAmount: number
	tableCode: string
	tableId: number
	tableName: string
	tableType: number
	updatedAt: string | null
	updatedBy: string | null
	userIds: string
	userNames: string
	validBetAmount: number
	validPot: number
	villageSeat: number
	currency?: string | undefined
}

export interface IHandListSummary {
	afterChip: number
	beforeChip: number
	bringMidwayChip: number
	evInsuredNetAmount: number
	handNetAmount: number
	insuredNetAmount: number
	pumpingAmount: number
	validPot: number
}

export interface IGameReplayDataQuery {
	pageNum: number
	pageSize: number
}

export interface IGameReplayData {
	totalRecord: number
	query: IGameReplayDataQuery
}

export interface IGameReplayDetailInfo {
	handId: string
}

export interface IGameReplayDetail {
	info: IGameReplayDetailInfo
	handStatus?: any
	topInfo?: any
	bottomList?: any
	insurePoolDetail?: any
}

export interface IGameReplay {
	replayDetail: IGameReplayDetail
	replayList: any[]
	replayReqResult: string
}

export interface IReplayInfo {
	clubName: any
	handId: any
	gameTypeName: string | undefined
	sbBlindScore: any
	bbBlindScore: any
	maxSeatCount: number
	anteScore: any
	isShowAnteScore: boolean
	handStartDateStr: string
	gameType: number
	isShowStraddleAmount: boolean
	straddleAmount: number
}

export interface ITopInfo {
	stepName?: string
	stepShowIndex: string | number
	stepItemMiddle?: boolean
	joinCount?: number
	potAmount?: number
	publicCardsImg: { src: string; isShowCardMark: boolean }[]
}

export interface IBottomListItem {
	fontGrayStyle?: string
	seatCodeName: string
	resultInfo: string
	isSelf: boolean
	nickName: string
	handCardsImg: { src: string; isShowCardGray: boolean; isShowCardMark: boolean }[]
	publicCardsImg: { src: string; isShowCardGray: boolean }[]
	totalNetAmount: number
	netAmount: number
	insuredNetAmount: number
	isShowCardEye: boolean
	betAction: string
	isPlusBetAction: boolean
	betActionColor: string
	betAmountText: string | null
	betAmount: number | null
	leijiPotAmount: number | null
	afterChip: number | null
	insureType: string | null
	insurePool: string | null
	isWinSquidRecord?: boolean
	betOpImg?: string
	betActionInsureName?: string
	isEVInsured?: boolean
}

export interface IInsurePoolDetail {
	title: string
	src: string
	insuredPool: string
	isInsured: any
}

export interface IBlobResponse {
	data: any
	headers: { [x: string]: any }
}

export interface IDxSysOperateLogParams {
	operateTime: TimeRange
	operateEndTime?: number
	requestIp?: string
	merchantId?: string
	moduleCode?: string
	operatePageCode?: number
	operateUserName?: string
	operateStartTime?: number
}

export interface IDxSysOperateLogState {
	id: string
	moduleCode: number
	moduleName: string
	operatePageCode: number
	operatePage: string
	operateFunction: string
	operateType: number
	requestUrl: string
	method: string
	requestIp: string
	requestParams: string
	operateBeforeParam: string
	operateAfterParam: string
	status: number
	exceptionMsg: string
	operateTime: string
	costTime: number
	operateUserId: number
	operateUserName: string
	accountType: number
	remark: string
	merchantId: number
	merchantName: string
	operateObject: string
	createdAt: string
	updatedAt: string
}

export interface IDxSysOperateLogEnums {
	pageCode: number
	pageName: string
	sectionCode: number
	sectionName: string
}

export interface ICommonResponse {
	data: any
}
